package com.bjsxt;
/**终止线程*/
public class StopThread02 implements Runnable{
  private boolean flag =true;
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"线程开始");
        int i = 0;
        while (flag){
            System.out.println(Thread.currentThread().getName()+" "+i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            i++;
        }
        System.out.println(Thread.currentThread().getName()+"结束线程");
    }
    public void stop(){
        this.flag=false;
    }

    public static void main(String[] args) throws Exception{
        System.out.println("主线程开始");
        StopThread02 st = new StopThread02();//在主线程必须开始就实例化
        //这里必须是st，不可以是new StopThread02,否则不可以终止线程，new了后会重新创建线程
        Thread t1 = new Thread(st);
        t1.start();
        System.in.read();
        st.stop();
        System.out.println("主线程结束");
    }
}
